<?php declare(strict_types=1);

namespace Zyucv7\Core\Web\Session;

/**
 * 会话处理抽象父类
 */
abstract class Handler {
    
    protected $config = [];
    protected $isStarted = false;

    public function isStarted(): bool {
        return $this->isStarted;
    }

    // 启动会话
    public abstract function start();

    // 设置会话数据
    public abstract function set(string $key, $value): void;

    // 获取会话数据
    public abstract function get(string $key, $default = null);

    // 获取所有的会话数据
    public abstract function all(): array;

    // 删除会话
    public abstract function remove(string $key): void;

    // 清除会话
    public abstract function clear(): void;

    // 设置会话ID
    public abstract function setId(string $id): void;   

    // 获取会话ID
    public abstract function getId(): string;

    // 判断是否过期
    public abstract function isExpired(): bool;
}